﻿#define _CRT_SECURE_NO_WARNINGS

//第一题

//BMI指数，是用体重(公斤)数除以身高(米)的平方得出的数字
//输入描述：一行，两个整数，分别表示体重（公斤），身高（厘米），中间用一个空格分隔。
//输出描述：一行，BMI指数（保留两位小数）。

//方法一：
//#include <stdio.h>
//#include <math.h>
//
//int main()
//{
//    int height = 0;
//    int weight = 0;
//    scanf("%d %d", &weight, &height);
//    double h = height/100.0;             //float/double想要输出正确的结果，= 右边的表达式必须至少有一个是浮点型，整型/整型=整型
//    double BMI = weight / pow(h, 2);
//    printf("%.2lf\n", BMI);
//    return 0;
//}

//方法二：
//#include <stdio.h>
//#include <math.h>
//（1）
//int main()
//{
//    float  weight, height;
//    scanf("%f %f",&weight,&height);
//    height = height / 100;
//    //float BMI = weight / pow(height, 2);//float转化为double是必须的转换。
//               // float     float        //两个float型数参加运算，虽然类型相同，但仍要先转成double型再进行运算，结果亦为double型。
//                            //所以使用此代码会出现警告：“初始化” : 从“double”转换到“float”，可能丢失数据
//    
//    double BMI = weight / pow(height, 2);//改成这样警告就没了
//
//    //所以，目前我觉得，创建浮点型变量最好直接用double创建，避免数据丢失。以后有新的见解再加深理解。
//
//    printf("%.2f",BMI);
//    return 0;
//}

//(2)(改进后的做法)
//int main()
//{
//    double  weight, height;//用float/double来创建变量时，可以输入整数，且整数在输入的时候就当做浮点数了，存的就是浮点数
//    scanf("%lf %lf",&weight,&height);
//    height = height / 100;
//    double BMI = weight / pow(height, 2);
//    printf("%.2lf",BMI);
//    return 0;
//}

//方法三：
//#include <stdio.h>
//#include <math.h>
//int main()
//{
//	int weight,height ;
//	scanf("%d %d",&weight,&height);
//	double h = (double)height / 100;    // 强制类型转换：(double)height,将int型的height强制转换成double型
//  double BMI = weight / pow(h, 2);
//	printf("%.2lf\n", BMI);
//
//	return 0;
//}


